1. Field
This disclosure relates generally to the operation of switching networks, and more particularly, to a system for reordering sequence based packets in a switching network.
2. Description of the Related Art
Communications networks are now required to handle data at very high data rates. For example, a data rate of 10 gigabits per second (Gbps) is common. When it is required to process data at these speeds, multiple high-speed parallel connections may be used to increase the effective bandwidth. However, this may result in one or more transmission problems, since the data streams must be divided to be distributed over the multiple parallel connections, and then at some point after parallel transmission, recombined to form the original streams.
FIG. 1 shows a block diagram 100 of a typical network structure for transmitting data frames (or data packets) from source processors 102 to a destination processor 104 via multiple communication fabrics 106. The data streams include packets or frames that may comprise a fixed amount of data. For example, stream A may include frames A0, A1, and A2 that are received by the source processor A and transmitted to each of the fabrics as shown. The stream B may include frames B0, B1 and B2 that are transmitted to the fabrics by source processor B as shown, and the stream C may include frames C0, C1 and C2 that are transmitted to the fabrics by source processor C as shown.
Once the frames are received by the fabrics, they are transmitted to the destination processor 104 as shown. The destination processor receives the frames and combines them in the order they arrive to form output stream D for transmission to another destination. In some systems, the destination processor breaks up stream D into multiple streams and transmits the multiple streams to another destination via multiple communication fabrics.
A significant problem that exists with current transmission systems, such as the system shown in FIG. 1, is that the frames may end up in the wrong order when stream D is formed and transmitted from the destination processor D. For example, if frames are originally transmitted via multiple transmission paths, they might arrive at the destination in an order that is different from how they were transmitted. For example, the frames may be output in stream D in the order shown at 108. In this case, frame B2 is output before frame B1, and frame C2 is output before frame C1. Thus, the frames for source processors B and C are transmitted out of order. In such a case, it may be necessary to discard out of order frames of data and request a new transmission of those frames. As a result, additional overhead will be used and a corresponding loss of transmission bandwidth will be realized.
Another problem that may occur in current transmission systems involves frames that may be lost in transmission, so that they never arrive at the destination processor. In this situation, it becomes difficult to determine when a frame is lost or merely delayed in transmission. Furthermore, if a frame is lost, the transmission of the received frames may be excessively delayed or blocked because of delays associated with the lost frame. Thus, the received frames pay a penalty for the lost or delayed frames in that the transmission of the received frames may be delayed or blocked completely.
Therefore, it would be desirable to have a system to reorder frames of data in a transmission system so that the frames are output in the correct order, thereby improving transmission efficiency. The system should also provide a way to process lost or delayed frames so that the transmission of received frames at a destination processor is not excessively delayed or blocked.